package com.ea.eadp.nexus.test.pageDefinition;


public interface TwoFactorAuthClient<Client> extends ClientAware<Client> {
    public enum Status {
        REGULAR_AUTH, CHALLENGING_AUTH, UNKNOWN
    }

    public Status getStatus() throws Exception;
    public void close() throws Exception;

    public void goAuthentication() throws Exception;
    public void goAuthenticationForSpecific(String clientId) throws Exception;
    public void goAuthenticationForSpecific(String clientId, String redirectUri) throws Exception;
    public void login(String username, String password) throws Exception;
    public void respondToChallenge(String answer) throws Exception;
    public String getInfoMessage() throws Exception;
    public String getErrorMessage() throws Exception;
}
